<html>
<head><meta charset="utf-8"><title>meeting 2020-10-20 · wg-traits · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/index.html">wg-traits</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html">meeting 2020-10-20</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="213971324"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213971324" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213971324">(Oct 20 2020 at 19:54)</a>:</h4>
<p>Hi <span class="user-group-mention" data-user-group-id="692">@WG-traits</span>, meeting in 5ish minutes</p>



<a name="213971361"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213971361" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213971361">(Oct 20 2020 at 19:55)</a>:</h4>
<p>I figured today we can discuss const evaluation, since we skipped meeting last week</p>



<a name="213971405"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213971405" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213971405">(Oct 20 2020 at 19:55)</a>:</h4>
<p>(I also went through and started to list some of the in-progress items/PRs and we can quickly review)</p>



<a name="213971731"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213971731" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213971731">(Oct 20 2020 at 19:58)</a>:</h4>
<p>I was trying to draw up a kind of "to do" list for the type library work</p>



<a name="213971736"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213971736" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213971736">(Oct 20 2020 at 19:58)</a>:</h4>
<p>but I didn't get too far yet</p>



<a name="213971743"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213971743" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213971743">(Oct 20 2020 at 19:58)</a>:</h4>
<p>(in response to the MCP discussion)</p>



<a name="213971762"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213971762" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213971762">(Oct 20 2020 at 19:58)</a>:</h4>
<p>I was thinking about what steps might make sense apart from <code>.data()</code></p>



<a name="213971868"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213971868" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213971868">(Oct 20 2020 at 19:59)</a>:</h4>
<p>yeah, that's probably worth discussing too</p>



<a name="213972024"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213972024" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213972024">(Oct 20 2020 at 20:00)</a>:</h4>
<p>Ok, <span class="user-group-mention" data-user-group-id="692">@WG-traits</span>, meeting time</p>



<a name="213972229"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213972229" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213972229">(Oct 20 2020 at 20:02)</a>:</h4>
<p>(anyone around?)</p>



<a name="213972264"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213972264" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213972264">(Oct 20 2020 at 20:02)</a>:</h4>
<p>Howdy :)</p>



<a name="213972281"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213972281" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213972281">(Oct 20 2020 at 20:02)</a>:</h4>
<p>Oh, there are people</p>



<a name="213972322"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213972322" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213972322">(Oct 20 2020 at 20:02)</a>:</h4>
<p>Alright, so "on the agenda" for today:</p>



<a name="213972335"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213972335" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213972335">(Oct 20 2020 at 20:03)</a>:</h4>
<ul>
<li>const evaluation Chalk</li>
</ul>



<a name="213972352"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213972352" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213972352">(Oct 20 2020 at 20:03)</a>:</h4>
<ul>
<li>In-progress things (review)</li>
</ul>



<a name="213972365"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213972365" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213972365">(Oct 20 2020 at 20:03)</a>:</h4>
<ul>
<li>Type library items?</li>
</ul>



<a name="213972379"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213972379" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213972379">(Oct 20 2020 at 20:03)</a>:</h4>
<p>But first! Announcements?</p>



<a name="213972513"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213972513" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213972513">(Oct 20 2020 at 20:04)</a>:</h4>
<p>Couple bug fixes got merged this week into Chalk</p>



<a name="213972535"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213972535" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213972535">(Oct 20 2020 at 20:04)</a>:</h4>
<p>And my PR to add <code>rebind</code> in rustc got merged</p>



<a name="213972574"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213972574" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213972574">(Oct 20 2020 at 20:05)</a>:</h4>
<p>Also still been working on tracking late-bound vars in rustc</p>



<a name="213972598"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213972598" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213972598">(Oct 20 2020 at 20:05)</a>:</h4>
<p>running into an issue locally I gotta figure out</p>



<a name="213972699"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213972699" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213972699">(Oct 20 2020 at 20:06)</a>:</h4>
<p>Anyone else done anything spectacular?</p>



<a name="213972742"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213972742" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213972742">(Oct 20 2020 at 20:06)</a>:</h4>
<p>Not I, sadly</p>



<a name="213972751"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213972751" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213972751">(Oct 20 2020 at 20:06)</a>:</h4>
<p>Reviewing :)</p>



<a name="213972781"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213972781" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213972781">(Oct 20 2020 at 20:06)</a>:</h4>
<p>I saw you reviewed the const eval PR, so looking forward to discussing that</p>



<a name="213972788"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213972788" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213972788">(Oct 20 2020 at 20:07)</a>:</h4>
<p>get a chance to look at the variance PR?</p>



<a name="213972802"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213972802" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213972802">(Oct 20 2020 at 20:07)</a>:</h4>
<p>I <em>think</em> I got things working</p>



<a name="213972864"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213972864" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213972864">(Oct 20 2020 at 20:07)</a>:</h4>
<p>I started reading it</p>



<a name="213972868"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213972868" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213972868">(Oct 20 2020 at 20:07)</a>:</h4>
<p>Still some more tests to be added in regards to setting the variance of structs or function args</p>



<a name="213972933"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213972933" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213972933">(Oct 20 2020 at 20:08)</a>:</h4>
<p>it's a big PR, although I've read some of it before</p>



<a name="213972951"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213972951" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213972951">(Oct 20 2020 at 20:08)</a>:</h4>
<p>I was wondering if it's maybe worth splitting up</p>



<a name="213973000"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973000" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973000">(Oct 20 2020 at 20:09)</a>:</h4>
<p>is there an obvious way to do that?</p>



<a name="213973013"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973013" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973013">(Oct 20 2020 at 20:09)</a>:</h4>
<p>What I had pre-generalizer got us pretty far</p>



<a name="213973019"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973019" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Léo Lanteri Thauvin <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973019">(Oct 20 2020 at 20:09)</a>:</h4>
<p>Sorry for the interruption, I was thinking that maybe I could help with some more refractors like</p>
<blockquote>
<p>Extend Rustc's folder trait to have a <code>Result</code> associated type</p>
</blockquote>
<p>or</p>
<blockquote>
<p>Extend Rustc's visit trait to not hard-code a boolean result?</p>
</blockquote>



<a name="213973030"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973030" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973030">(Oct 20 2020 at 20:09)</a>:</h4>
<p>But I don't know if that is "right"</p>



<a name="213973082"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973082" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973082">(Oct 20 2020 at 20:09)</a>:</h4>
<p><span class="user-mention silent" data-user-id="255061">LeSeulArtichaut</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202020-10-20/near/213973019">said</a>:</p>
<blockquote>
<p>Sorry for the interruption, I was thinking that maybe I could help with some more refractors like</p>
<blockquote>
<p>Extend Rustc's folder trait to have a <code>Result</code> associated type</p>
</blockquote>
<p>or</p>
<blockquote>
<p>Extend Rustc's visit trait to not hard-code a boolean result?</p>
</blockquote>
</blockquote>
<p>Interesting you brought that up</p>



<a name="213973101"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973101" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973101">(Oct 20 2020 at 20:09)</a>:</h4>
<p>since there was just a related MCP</p>



<a name="213973141"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973141" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Léo Lanteri Thauvin <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973141">(Oct 20 2020 at 20:10)</a>:</h4>
<p>The one by <span class="user-mention silent" data-user-id="216206">lcnr</span>?</p>



<a name="213973188"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973188" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973188">(Oct 20 2020 at 20:10)</a>:</h4>
<p><a href="#narrow/stream/233931-t-compiler.2Fmajor-changes/topic/TypeVisitor.3A.20use.20ops.3A.3AControlFlow.20instead.E2.80.A6.20compiler-team.23374/near/213916879">link</a></p>



<a name="213973214"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973214" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973214">(Oct 20 2020 at 20:10)</a>:</h4>
<p>ah, interesting, I saw that</p>



<a name="213973217"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973217" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973217">(Oct 20 2020 at 20:10)</a>:</h4>
<p>but I failed to make the connection :)</p>



<a name="213973246"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973246" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973246">(Oct 20 2020 at 20:10)</a>:</h4>
<p>So, that MCP basically just replaces the <code>bool</code> with <code>ControlFlow</code></p>



<a name="213973251"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973251" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Léo Lanteri Thauvin <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973251">(Oct 20 2020 at 20:10)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202020-10-20/near/213973217">said</a>:</p>
<blockquote>
<p>but I failed to make the connection :)</p>
</blockquote>
<p>I didn't either <span aria-label="big smile" class="emoji emoji-1f604" role="img" title="big smile">:big_smile:</span></p>



<a name="213973283"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973283" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973283">(Oct 20 2020 at 20:11)</a>:</h4>
<p>Whereas <code>ControlFlow</code> is like the Chalk <code>ReturnEarly</code></p>



<a name="213973289"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973289" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973289">(Oct 20 2020 at 20:11)</a>:</h4>
<p>the visit trait in chalk is a bit more general, in particular I think I wanted to be able to "count" things</p>



<a name="213973308"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973308" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973308">(Oct 20 2020 at 20:11)</a>:</h4>
<p>I'm not sure if we're really <em>using</em> that capability</p>



<a name="213973330"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973330" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973330">(Oct 20 2020 at 20:11)</a>:</h4>
<p>There are currently only two <code>VisitResult</code>s</p>



<a name="213973334"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973334" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973334">(Oct 20 2020 at 20:11)</a>:</h4>
<p>I remember I had a reason to do it</p>



<a name="213973337"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973337" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973337">(Oct 20 2020 at 20:11)</a>:</h4>
<p><code>ReturnEarly</code> and <code>FindAny</code></p>



<a name="213973432"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973432" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973432">(Oct 20 2020 at 20:12)</a>:</h4>
<p>ah yeah it had to do with sem-vs-syn-equality, in some cases I wanted to count references to escaping things or something like that, though maybe that's not needed anymore since we refactored how binders work to count binder levels and not individual variables</p>



<a name="213973541"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973541" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973541">(Oct 20 2020 at 20:13)</a>:</h4>
<p>Okay, maybe I was wrong about <code>ReturnEarly</code></p>



<a name="213973545"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973545" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973545">(Oct 20 2020 at 20:13)</a>:</h4>
<p>thought I saw that...</p>



<a name="213973623"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973623" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973623">(Oct 20 2020 at 20:14)</a>:</h4>
<p>I guess that's <code>FindAny</code> anyways</p>



<a name="213973627"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973627" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973627">(Oct 20 2020 at 20:14)</a>:</h4>
<p>maybe only <code>FindAny</code>?</p>



<a name="213973641"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973641" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973641">(Oct 20 2020 at 20:14)</a>:</h4>
<p>and <code>FindFreeVarsVisitor</code></p>



<a name="213973669"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973669" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973669">(Oct 20 2020 at 20:14)</a>:</h4>
<p>oh, that yields a <code>FindAny</code></p>



<a name="213973676"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973676" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973676">(Oct 20 2020 at 20:14)</a>:</h4>
<p>yeah</p>



<a name="213973693"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973693" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973693">(Oct 20 2020 at 20:15)</a>:</h4>
<p><code>()</code> also impls <code>VisitResult</code></p>



<a name="213973699"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973699" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973699">(Oct 20 2020 at 20:15)</a>:</h4>
<p>as a noop</p>



<a name="213973719"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973719" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973719">(Oct 20 2020 at 20:15)</a>:</h4>
<p>so...if we're only using <code>FindAny</code>, that is indeed basically the same as rustc's visitor</p>



<a name="213973728"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973728" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973728">(Oct 20 2020 at 20:15)</a>:</h4>
<p>yes</p>



<a name="213973737"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973737" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973737">(Oct 20 2020 at 20:15)</a>:</h4>
<p>and I would be inclined to remove the traits and complexity</p>



<a name="213973745"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973745" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nathan Whitaker <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973745">(Oct 20 2020 at 20:15)</a>:</h4>
<p>Somewhat related, I've been contemplating whether or not the target interner parameter in <code>Fold</code> pulls its weight (I lean towards no, we don't use it at all currently).</p>



<a name="213973760"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973760" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973760">(Oct 20 2020 at 20:15)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> had ideas for that</p>



<a name="213973780"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973780" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973780">(Oct 20 2020 at 20:15)</a>:</h4>
<p>I did, I had hoped to use it to separate out distinct "phases" of interning</p>



<a name="213973845"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973845" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973845">(Oct 20 2020 at 20:16)</a>:</h4>
<p>e.g., to separate out "semantic vs syntactic" and guarantee that you transform from one to the other</p>



<a name="213973868"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973868" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nathan Whitaker <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973868">(Oct 20 2020 at 20:16)</a>:</h4>
<p>Ooh, interesting</p>



<a name="213973889"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973889" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nathan Whitaker <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973889">(Oct 20 2020 at 20:16)</a>:</h4>
<p>Hadn't thought of that before</p>



<a name="213973892"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973892" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973892">(Oct 20 2020 at 20:16)</a>:</h4>
<p>ideally without actually requiring deep changes</p>



<a name="213973921"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973921" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973921">(Oct 20 2020 at 20:16)</a>:</h4>
<p>that is, you would have two generic interners, but they would wind up being the same interner when instantiated</p>



<a name="213973956"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973956" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973956">(Oct 20 2020 at 20:17)</a>:</h4>
<p>we would probably want some optimizations there to account for "no-op" changes and not having to refold everything</p>



<a name="213973974"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973974" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973974">(Oct 20 2020 at 20:17)</a>:</h4>
<p>there's no doubt that it adds complexity and it may not be worth it :)</p>



<a name="213973988"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213973988" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213973988">(Oct 20 2020 at 20:17)</a>:</h4>
<p>but it is also a nice way to be sure you didn't overlook cases</p>



<a name="213974020"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974020" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974020">(Oct 20 2020 at 20:17)</a>:</h4>
<p><em>anyways</em></p>



<a name="213974033"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974033" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974033">(Oct 20 2020 at 20:17)</a>:</h4>
<p>we're kind of getting off track</p>



<a name="213974093"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974093" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974093">(Oct 20 2020 at 20:18)</a>:</h4>
<p>yeah, we are, it's relevant to the shared type library discussion but that was last on the agenda :)</p>



<a name="213974116"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974116" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974116">(Oct 20 2020 at 20:18)</a>:</h4>
<p>yes, we can get back to it</p>



<a name="213974121"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974121" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974121">(Oct 20 2020 at 20:18)</a>:</h4>
<p>Let's circle back and look at in progress things</p>



<a name="213974125"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974125" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974125">(Oct 20 2020 at 20:18)</a>:</h4>
<p>I made a list</p>



<a name="213974135"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974135" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974135">(Oct 20 2020 at 20:18)</a>:</h4>
<ul>
<li>Binder refactor (<a href="https://github.com/rust-lang/rust/issues/76814">rust#76814</a>)</li>
<li>Binder <code>map_bound_ref</code> (<a href="https://github.com/rust-lang/rust/issues/77685">rust#77685</a>)</li>
<li><code>TyKind</code> -&gt; <code>TyData</code> (<a href="https://github.com/rust-lang/rust/issues/77768">rust#77768</a>)</li>
<li>Subtyping/variance (<a href="https://github.com/rust-lang-nursery/chalk/issues/609">chalk#609</a>)</li>
<li>Sem/syn equality (<a href="https://github.com/rust-lang-nursery/chalk/issues/589">chalk#589</a>)</li>
<li>Const evaluation (<a href="https://github.com/rust-lang-nursery/chalk/issues/596">chalk#596</a>)</li>
</ul>



<a name="213974141"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974141" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974141">(Oct 20 2020 at 20:18)</a>:</h4>
<p>Uh, that second one is merged</p>



<a name="213974158"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974158" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974158">(Oct 20 2020 at 20:18)</a>:</h4>
<p>Also why didn't it format correctly</p>



<a name="213974189"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974189" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974189">(Oct 20 2020 at 20:19)</a>:</h4>
<p>there we go</p>



<a name="213974206"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974206" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974206">(Oct 20 2020 at 20:19)</a>:</h4>
<p>ugh formatting is so bad</p>



<a name="213974224"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974224" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974224">(Oct 20 2020 at 20:19)</a>:</h4>
<p>links are here: <a href="https://hackmd.io/nrhN5A8sR2eY9UdfJTKcJg?both">https://hackmd.io/nrhN5A8sR2eY9UdfJTKcJg?both</a></p>



<a name="213974232"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974232" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974232">(Oct 20 2020 at 20:19)</a>:</h4>
<p>I think if you just remove the <code>[]</code> it will work ok in zulip but yeah annoying</p>



<a name="213974325"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974325" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974325">(Oct 20 2020 at 20:20)</a>:</h4>
<p>Aright, so I've already mentioned the first two</p>



<a name="213974330"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974330" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974330">(Oct 20 2020 at 20:20)</a>:</h4>
<p>That's getting there</p>



<a name="213974360"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974360" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974360">(Oct 20 2020 at 20:20)</a>:</h4>
<p><code>TyKind</code> -&gt; <code>TyData</code> we can discussion irt. type library</p>



<a name="213974381"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974381" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974381">(Oct 20 2020 at 20:20)</a>:</h4>
<p>subtyping/variance, we've already discussed a bit too</p>



<a name="213974410"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974410" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974410">(Oct 20 2020 at 20:21)</a>:</h4>
<p>I will leave it up to <span class="user-mention" data-user-id="116009">@nikomatsakis</span> whether he thinks it's worth splitting out a subset</p>



<a name="213974443"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974443" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974443">(Oct 20 2020 at 20:21)</a>:</h4>
<p>(I'm less inclined now than I was at one point given that I think it works now)</p>



<a name="213974458"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974458" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974458">(Oct 20 2020 at 20:21)</a>:</h4>
<p>Sem/syn equality, I'm not sure</p>



<a name="213974488"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974488" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974488">(Oct 20 2020 at 20:21)</a>:</h4>
<p>what the state is</p>



<a name="213974539"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974539" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974539">(Oct 20 2020 at 20:22)</a>:</h4>
<p>(and I keep saying that)</p>



<a name="213974558"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974558" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974558">(Oct 20 2020 at 20:22)</a>:</h4>
<p>I pulled it locally to take a look</p>



<a name="213974596"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974596" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974596">(Oct 20 2020 at 20:22)</a>:</h4>
<p>(I also thought about/played with <a href="https://github.com/rust-lang-nursery/chalk/issues/234">chalk#234</a>, but that failed)</p>



<a name="213974634"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974634" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974634">(Oct 20 2020 at 20:22)</a>:</h4>
<p>And const eval we'll also talk about</p>



<a name="213974653"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974653" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974653">(Oct 20 2020 at 20:23)</a>:</h4>
<p>I <em>probably</em> missed things here</p>



<a name="213974676"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974676" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974676">(Oct 20 2020 at 20:23)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202020-10-20/near/213974410">said</a>:</p>
<blockquote>
<p>I will leave it up to <span class="user-mention silent" data-user-id="116009">nikomatsakis</span> whether he thinks it's worth splitting out a subset</p>
</blockquote>
<p>probably not, I probably just need to devote an hour or two to read it</p>



<a name="213974722"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974722" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974722">(Oct 20 2020 at 20:23)</a>:</h4>
<p>I <em>mostly</em> just wanted to keep a list around of things in progress so we don't let things slip through</p>



<a name="213974828"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974828" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974828">(Oct 20 2020 at 20:24)</a>:</h4>
<p>shall we discuss <a href="https://github.com/rust-lang-nursery/chalk/issues/596">chalk#596</a> const eval?</p>



<a name="213974846"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974846" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974846">(Oct 20 2020 at 20:24)</a>:</h4>
<p>(Feel free to add things to the list if I missed)</p>



<a name="213974852"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974852" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974852">(Oct 20 2020 at 20:24)</a>:</h4>
<p>Yes, const eval</p>



<a name="213974877"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974877" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974877">(Oct 20 2020 at 20:25)</a>:</h4>
<p>So, I don't <em>really</em> know what the end vision is here</p>



<a name="213974903"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974903" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974903">(Oct 20 2020 at 20:25)</a>:</h4>
<p>Especially after reading <span class="user-mention" data-user-id="116009">@nikomatsakis</span>'s review, I feel like I know less</p>



<a name="213974935"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213974935" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213974935">(Oct 20 2020 at 20:25)</a>:</h4>
<p>Heh, I feel like I need to compare against rustc a bit and get things back in my head too, but...</p>



<a name="213975000"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213975000" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213975000">(Oct 20 2020 at 20:26)</a>:</h4>
<p>I think of const eval as quite similar to associated type normalization</p>



<a name="213975020"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213975020" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213975020">(Oct 20 2020 at 20:26)</a>:</h4>
<p>i.e., you have an expression that has to be evaluated</p>



<a name="213975039"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213975039" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213975039">(Oct 20 2020 at 20:26)</a>:</h4>
<p>that expression can have generics in scope, because it might be like <code>fn foo&lt;const C: usize&gt;() -&gt; [u32; C + 1]</code></p>



<a name="213975102"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213975102" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213975102">(Oct 20 2020 at 20:27)</a>:</h4>
<p>if you invoke <code>foo::&lt;22&gt;</code>, then you get back a return type like <code>[[C+1]]&lt;C=22&gt;</code> -- i.e., the expression <code>C+1</code> but with a substitution that specifies <code>C = 22</code></p>



<a name="213975135"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213975135" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213975135">(Oct 20 2020 at 20:27)</a>:</h4>
<p>(this can lead to some cyclic complications)</p>



<a name="213975146"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213975146" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213975146">(Oct 20 2020 at 20:27)</a>:</h4>
<p>I think that these substitutions are kind of missing from the PR</p>



<a name="213975197"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213975197" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213975197">(Oct 20 2020 at 20:28)</a>:</h4>
<p>Well</p>



<a name="213975204"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213975204" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213975204">(Oct 20 2020 at 20:28)</a>:</h4>
<p>Hmm</p>



<a name="213975245"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213975245" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213975245">(Oct 20 2020 at 20:28)</a>:</h4>
<p>I mean, do consts (evaluated or unevaluated) carry substitutions themselves?</p>



<a name="213975275"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213975275" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213975275">(Oct 20 2020 at 20:28)</a>:</h4>
<p>yeah, well, only unevaluated consts do</p>



<a name="213975302"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213975302" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213975302">(Oct 20 2020 at 20:29)</a>:</h4>
<p><a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/ty/enum.ConstKind.html#variant.Unevaluated">https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/ty/enum.ConstKind.html#variant.Unevaluated</a></p>



<a name="213975309"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213975309" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213975309">(Oct 20 2020 at 20:29)</a>:</h4>
<p>right, an evaluated constant is basically some bits</p>



<a name="213975360"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213975360" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213975360">(Oct 20 2020 at 20:29)</a>:</h4>
<p>ps, <span class="user-mention" data-user-id="216206">@lcnr</span>, I'm not sure what <code>WithOptConstParam&lt;&gt;</code> is...</p>



<a name="213975450"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213975450" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213975450">(Oct 20 2020 at 20:30)</a>:</h4>
<p>it's a <code>DefId</code></p>



<a name="213975455"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213975455" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213975455">(Oct 20 2020 at 20:30)</a>:</h4>
<p>but basically in rustc you identify an expression like <code>[[C+1]]</code> with a <code>DefId</code> (and an optional <code>Promoted</code> index? not sure about that)</p>



<a name="213975484"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213975484" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213975484">(Oct 20 2020 at 20:30)</a>:</h4>
<p>Right, okay I think I see</p>



<a name="213975514"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213975514" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213975514">(Oct 20 2020 at 20:31)</a>:</h4>
<p>except that we have to deal with query cycles by pairing them with a optional additional <code>DefId</code> for the corresponding generic param</p>



<a name="213975645"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213975645" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213975645">(Oct 20 2020 at 20:32)</a>:</h4>
<p>this is needed for </p>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="cp">#![feature(const_generics)]</span><span class="w"></span>

<span class="k">struct</span> <span class="nc">A</span><span class="p">;</span><span class="w"></span>
<span class="k">impl</span><span class="w"> </span><span class="n">A</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="k">fn</span> <span class="nf">foo</span><span class="o">&lt;</span><span class="k">const</span><span class="w"> </span><span class="n">N</span>: <span class="kt">usize</span><span class="o">&gt;</span><span class="p">(</span><span class="o">&amp;</span><span class="bp">self</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="kt">usize</span> <span class="p">{</span><span class="w"> </span><span class="n">N</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
<span class="k">struct</span> <span class="nc">B</span><span class="p">;</span><span class="w"></span>
<span class="k">impl</span><span class="w"> </span><span class="n">B</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="k">fn</span> <span class="nf">foo</span><span class="o">&lt;</span><span class="k">const</span><span class="w"> </span><span class="n">M</span>: <span class="kt">isize</span><span class="o">&gt;</span><span class="p">(</span><span class="o">&amp;</span><span class="bp">self</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="kt">usize</span> <span class="p">{</span><span class="w"> </span><span class="mi">42</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>

<span class="k">fn</span> <span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="kd">let</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">A</span><span class="p">;</span><span class="w"></span>
<span class="w">    </span><span class="n">a</span><span class="p">.</span><span class="n">foo</span>::<span class="o">&lt;</span><span class="mi">7</span><span class="o">&gt;</span><span class="p">();</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>



<a name="213975686"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213975686" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213975686">(Oct 20 2020 at 20:32)</a>:</h4>
<p>I'm trying to understand that example :)</p>



<a name="213975712"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213975712" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213975712">(Oct 20 2020 at 20:32)</a>:</h4>
<p>and kind of failing</p>



<a name="213975720"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213975720" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213975720">(Oct 20 2020 at 20:32)</a>:</h4>
<p>we don't know the expected type of <code>7</code> before typechecking <code>main</code> but have to know the value of <code>7</code> during typechecking</p>



<a name="213975729"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213975729" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213975729">(Oct 20 2020 at 20:32)</a>:</h4>
<p>So, I guess, if the PR needs non-trivial work, I'm not sure if the PR author is around. They haven't really been responsive. So, we either should 1) close the PR for now or 2) have someone here pick it up and finish it</p>



<a name="213975840"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213975840" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213975840">(Oct 20 2020 at 20:34)</a>:</h4>
<p><span class="user-mention" data-user-id="216206">@lcnr</span> the <code>DefId</code> of <code>7</code> there includes ... the index <code>0</code> to say that it is the value for the 0th argument, is that the idea?</p>



<a name="213975872"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213975872" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213975872">(Oct 20 2020 at 20:34)</a>:</h4>
<p>Considering that this is the second time <code>WithOptConstParam</code> caused some confusion it might be nice if you could help me out with improving the struct docs here <a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/ty/struct.WithOptConstParam.html">https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/ty/struct.WithOptConstParam.html</a></p>



<a name="213975898"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213975898" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213975898">(Oct 20 2020 at 20:34)</a>:</h4>
<p><span class="user-mention" data-user-id="232957">@Jack Huey</span> yeah, that makes sense. Maybe it'd be a good idea to try and write-up some instructions for how we imagine it working</p>



<a name="213975931"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213975931" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213975931">(Oct 20 2020 at 20:34)</a>:</h4>
<p>The <code>DefId</code> of <code>7</code> is paired with the <code>DefId</code> of the parameter <code>N</code> here</p>



<a name="213975949"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213975949" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213975949">(Oct 20 2020 at 20:34)</a>:</h4>
<p><span class="user-mention" data-user-id="216206">@lcnr</span> feel like contributing to Chalk :D</p>



<a name="213976017"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213976017" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213976017">(Oct 20 2020 at 20:35)</a>:</h4>
<p><span class="user-mention" data-user-id="216206">@lcnr</span> I see. That is computed during type-checking I guess? i.e., we have to know which method is being invoked to figure that out</p>



<a name="213976170"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213976170" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213976170">(Oct 20 2020 at 20:36)</a>:</h4>
<p>to what extent is rustc using a "lazy norm" approach for constants now</p>



<a name="213976200"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213976200" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213976200">(Oct 20 2020 at 20:37)</a>:</h4>
<p>That's also something I thought about</p>



<a name="213976217"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213976217" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213976217">(Oct 20 2020 at 20:37)</a>:</h4>
<p>When you mentioned they are something like associated types</p>



<a name="213976241"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213976241" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213976241">(Oct 20 2020 at 20:37)</a>:</h4>
<p>It seems like the approach in the PR is very eager</p>



<a name="213976277"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213976277" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213976277">(Oct 20 2020 at 20:37)</a>:</h4>
<p>afaik we should mostly evaluate them during <code>fulfill</code> and <code>select</code> now</p>



<a name="213976302"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213976302" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213976302">(Oct 20 2020 at 20:37)</a>:</h4>
<p>with some exceptions like <code>structural_match</code> checking</p>



<a name="213976357"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213976357" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213976357">(Oct 20 2020 at 20:38)</a>:</h4>
<p>which happens outside of typeck</p>



<a name="213976418"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213976418" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213976418">(Oct 20 2020 at 20:38)</a>:</h4>
<p><span class="user-mention silent" data-user-id="216206">lcnr</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202020-10-20/near/213976302">said</a>:</p>
<blockquote>
<p>with some exceptions like <code>structural_match</code> checking</p>
</blockquote>
<p><code>[NotStructuralMatch; 0]</code> is structural match, which is why we have to evaluate that constant</p>



<a name="213976492"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213976492" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213976492">(Oct 20 2020 at 20:39)</a>:</h4>
<p>so if you unify two constants, that generates a goal to be resolved, right?</p>



<a name="213976638"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213976638" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213976638">(Oct 20 2020 at 20:40)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202020-10-20/near/213975949">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="216206">lcnr</span> feel like contributing to Chalk :D</p>
</blockquote>
<p>maybe once rustc is finished <span aria-label="heart" class="emoji emoji-2764" role="img" title="heart">:heart:</span></p>



<a name="213976652"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213976652" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213976652">(Oct 20 2020 at 20:40)</a>:</h4>
<p>OK. So it does seem like we need to spell out how this should work. This would be really useful for me personally, I think.</p>



<a name="213976657"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213976657" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213976657">(Oct 20 2020 at 20:40)</a>:</h4>
<p><span class="user-mention silent" data-user-id="216206">lcnr</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202020-10-20/near/213976638">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202020-10-20/near/213975949">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="216206">lcnr</span> feel like contributing to Chalk :D</p>
</blockquote>
<p>maybe once rustc is finished <span aria-label="heart" class="emoji emoji-2764" role="img" title="heart">:heart:</span></p>
</blockquote>
<p>"finished"</p>



<a name="213976693"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213976693" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213976693">(Oct 20 2020 at 20:41)</a>:</h4>
<p>this reminds me <span class="user-mention" data-user-id="216206">@lcnr</span> that we should setup that time to talk about "min const generics" tests</p>



<a name="213976710"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213976710" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213976710">(Oct 20 2020 at 20:41)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202020-10-20/near/213976652">said</a>:</p>
<blockquote>
<p>OK. So it does seem like we need to spell out how this should work. This would be really useful for me personally, I think.</p>
</blockquote>
<p>That's probably a good idea. And it sounds like we maybe should close the PR as-is</p>



<a name="213976721"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213976721" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213976721">(Oct 20 2020 at 20:41)</a>:</h4>
<p>yeah I think so</p>



<a name="213976762"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213976762" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213976762">(Oct 20 2020 at 20:41)</a>:</h4>
<p>should we move to next topic?</p>



<a name="213976764"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213976764" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213976764">(Oct 20 2020 at 20:41)</a>:</h4>
<p>/me eyes the time</p>



<a name="213976765"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213976765" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213976765">(Oct 20 2020 at 20:41)</a>:</h4>
<p>That does make me sad, because I don't really want to see it fall through, <em>but</em> I don't anyone here has the bandwidth to update it</p>



<a name="213976775"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213976775" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213976775">(Oct 20 2020 at 20:42)</a>:</h4>
<p>Yeah</p>



<a name="213976818"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213976818" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213976818">(Oct 20 2020 at 20:42)</a>:</h4>
<p>well it can always be re-opened</p>



<a name="213976822"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213976822" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213976822">(Oct 20 2020 at 20:42)</a>:</h4>
<p>We can talk about shared type library</p>



<a name="213976845"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213976845" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213976845">(Oct 20 2020 at 20:42)</a>:</h4>
<p>I was actually just starting to write up an issue about type flags and I realized that maybe what I said in the MCP thread was wrong</p>



<a name="213976859"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213976859" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213976859">(Oct 20 2020 at 20:42)</a>:</h4>
<p>So, it sounds like maybe the <code>TyKind</code> -&gt; <code>TyData</code> rename is not the way to go for now</p>



<a name="213976874"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213976874" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213976874">(Oct 20 2020 at 20:42)</a>:</h4>
<p>How so?</p>



<a name="213976892"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213976892" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213976892">(Oct 20 2020 at 20:43)</a>:</h4>
<p>In particular we were discussing whether <code>ty.data()</code> should yield the enum directly or some sort of intermediate structure</p>



<a name="213976926"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213976926" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213976926">(Oct 20 2020 at 20:43)</a>:</h4>
<p>I was expecting we would extend the <code>Interner</code> trait to carry the type flags along with the interned data</p>



<a name="213977018"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213977018" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213977018">(Oct 20 2020 at 20:44)</a>:</h4>
<p>i.e. <code>ty_data</code> and <code>ty_flags</code>?</p>



<a name="213977036"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213977036" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213977036">(Oct 20 2020 at 20:44)</a>:</h4>
<p>so we'd have like </p>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="k">fn</span> <span class="nf">intern_ty</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="w"> </span><span class="n">ty</span>: <span class="nc">TyData</span><span class="p">,</span><span class="w"> </span><span class="n">flags</span>: <span class="nc">TyFlags</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="nc">Self</span>::<span class="n">InternedType</span><span class="p">;</span><span class="w"></span>
<span class="k">fn</span> <span class="nf">ty_data</span><span class="p">(</span><span class="n">t</span>: <span class="nc">Self</span>::<span class="n">InternedType</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="kp">&amp;</span><span class="nc">TyData</span><span class="p">;</span><span class="w"></span>
<span class="k">fn</span> <span class="nf">ty_flags</span><span class="p">(</span><span class="n">t</span>: <span class="nc">Self</span>::<span class="n">InternedType</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="nc">TyFlags</span><span class="p">;</span><span class="w"></span>
</code></pre></div>



<a name="213977042"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213977042" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213977042">(Oct 20 2020 at 20:44)</a>:</h4>
<p>and I guess we can do that</p>



<a name="213977109"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213977109" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213977109">(Oct 20 2020 at 20:45)</a>:</h4>
<p>I guess when I started describing it, it seemed like it was pushing a bit more "work" onto the interner that could be de-duplicated</p>



<a name="213977186"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213977186" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213977186">(Oct 20 2020 at 20:46)</a>:</h4>
<p>(the alternative being to make <code>TyData</code> a struct that carries a <code>TyKind</code> and a <code>TyFlags</code>)</p>



<a name="213977245"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213977245" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213977245">(Oct 20 2020 at 20:46)</a>:</h4>
<p>yes</p>



<a name="213977253"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213977253" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213977253">(Oct 20 2020 at 20:46)</a>:</h4>
<p>like <code>TyS</code> in rustc</p>



<a name="213977299"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213977299" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213977299">(Oct 20 2020 at 20:46)</a>:</h4>
<p>it does seem a bit silly to write <code>match ty.data(interner).kind</code> in chalk, though I guess we could easily add a helper like <code>match ty.kind(interner) {</code> to make it equivalent to today</p>



<a name="213977337"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213977337" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213977337">(Oct 20 2020 at 20:47)</a>:</h4>
<p>anyway I guess it might sidestep the big renaming debate :)</p>



<a name="213977375"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213977375" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213977375">(Oct 20 2020 at 20:47)</a>:</h4>
<p>what does seem important is that the code to compute the flags needs to live in chalk, so it can be shared</p>



<a name="213977447"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213977447" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213977447">(Oct 20 2020 at 20:48)</a>:</h4>
<p>Yes</p>



<a name="213977527"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213977527" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213977527">(Oct 20 2020 at 20:48)</a>:</h4>
<p>I am more leaning towards renaming Chalk's <code>TyData</code> to<code>TyKind</code></p>



<a name="213977544"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213977544" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213977544">(Oct 20 2020 at 20:49)</a>:</h4>
<p>so, apart from that, I think the other things to be done are reconciling the folder/visitor traits, and figuring out how to manage the different in rustc's types (with all its many variants) and chalk's types (with...not so many variants)</p>



<a name="213977549"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213977549" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213977549">(Oct 20 2020 at 20:49)</a>:</h4>
<p>adding a <code>TyData</code> struct with data + flags</p>



<a name="213977578"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213977578" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213977578">(Oct 20 2020 at 20:49)</a>:</h4>
<p>s/TyKind/TyData/?</p>



<a name="213977695"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213977695" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213977695">(Oct 20 2020 at 20:50)</a>:</h4>
<p>yes</p>



<a name="213977719"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213977719" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213977719">(Oct 20 2020 at 20:50)</a>:</h4>
<blockquote>
<p>figuring out how to manage the different in rustc's types (with all its many variants) and chalk's types (with...not so many variants)</p>
</blockquote>



<a name="213977722"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213977722" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213977722">(Oct 20 2020 at 20:50)</a>:</h4>
<p>So</p>



<a name="213977733"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213977733" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213977733">(Oct 20 2020 at 20:50)</a>:</h4>
<p>let's discuss this bit</p>



<a name="213977776"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213977776" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213977776">(Oct 20 2020 at 20:51)</a>:</h4>
<p>So, in general, I think I prefer Chalk's <code>Apply</code></p>



<a name="213977785"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213977785" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213977785">(Oct 20 2020 at 20:51)</a>:</h4>
<p><em>but</em></p>



<a name="213977817"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213977817" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213977817">(Oct 20 2020 at 20:51)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202020-10-20/near/213977527">said</a>:</p>
<blockquote>
<p>I am more leaning towards renaming Chalk's <code>TyData</code> to<code>TyKind</code></p>
</blockquote>
<p>I think I agree, I see some value in saying "the interner just interns a struct" versus having it have to intern multiple values</p>



<a name="213977865"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213977865" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213977865">(Oct 20 2020 at 20:51)</a>:</h4>
<p>it does make it slightly more dificult to "unpack" things, like if you know you have an <code>Array</code> type, and you want the type and const</p>



<a name="213977972"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213977972" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213977972">(Oct 20 2020 at 20:52)</a>:</h4>
<p>the chalk setup basically optimizes for "generic" code that doesn't care too much about the details of the types it's working with</p>



<a name="213977979"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213977979" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213977979">(Oct 20 2020 at 20:52)</a>:</h4>
<p>right</p>



<a name="213977984"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213977984" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213977984">(Oct 20 2020 at 20:52)</a>:</h4>
<p>I think this was the  right call for <em>chalk</em> but I have been wondering if it's the right call for <em>rustc</em></p>



<a name="213977991"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213977991" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213977991">(Oct 20 2020 at 20:52)</a>:</h4>
<p>and I feel like that makes things cleaner in most places</p>



<a name="213978010"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978010" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978010">(Oct 20 2020 at 20:53)</a>:</h4>
<p>and even within <em>chalk</em>, some of the logic for generating program clauses might be improved by being more specific ? not sure.</p>



<a name="213978025"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978025" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978025">(Oct 20 2020 at 20:53)</a>:</h4>
<p>The problem is, I don't have near enough experience on the rustc side to make a good judgement</p>



<a name="213978050"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978050" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978050">(Oct 20 2020 at 20:53)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202020-10-20/near/213978010">said</a>:</p>
<blockquote>
<p>and even within <em>chalk</em>, some of the logic for generating program clauses might be improved by being more specific ? not sure.</p>
</blockquote>
<p>also possibly true</p>



<a name="213978060"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978060" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978060">(Oct 20 2020 at 20:53)</a>:</h4>
<p>yeah, I had thought about trying to actually generate some sort of data</p>



<a name="213978068"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978068" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978068">(Oct 20 2020 at 20:53)</a>:</h4>
<p>but it was too annoying :)</p>



<a name="213978081"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978081" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978081">(Oct 20 2020 at 20:53)</a>:</h4>
<p>e.g., trying to find out "which variants are often grouped together into one match arm"</p>



<a name="213978084"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978084" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978084">(Oct 20 2020 at 20:53)</a>:</h4>
<p>there's quite a few places we first match on the type then immediately also on <code>name</code> for <code>Apply</code></p>



<a name="213978160"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978160" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978160">(Oct 20 2020 at 20:54)</a>:</h4>
<p>One thing that I <em>definitely</em> think we should move over from Chalk to rustc is <code>Scalar</code></p>



<a name="213978170"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978170" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978170">(Oct 20 2020 at 20:54)</a>:</h4>
<p>heh funny I was thinking it would be good to start with that too</p>



<a name="213978178"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978178" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978178">(Oct 20 2020 at 20:54)</a>:</h4>
<p>basically no reason to do it all or nothing</p>



<a name="213978191"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978191" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978191">(Oct 20 2020 at 20:54)</a>:</h4>
<p>we can try to combine things a bit at a time and see how it feels</p>



<a name="213978232"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978232" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978232">(Oct 20 2020 at 20:55)</a>:</h4>
<p>If nothing else, it's a good start</p>



<a name="213978258"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978258" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978258">(Oct 20 2020 at 20:55)</a>:</h4>
<p>And I'm down to move slowly and steadily rather than not at all</p>



<a name="213978266"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978266" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978266">(Oct 20 2020 at 20:55)</a>:</h4>
<p>there <em>are</em> a lot of types in <a href="http://rust-lang.github.io/chalk/chalk_ir/enum.TypeName.html"><code>TypeName</code></a> :)</p>



<a name="213978283"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978283" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978283">(Oct 20 2020 at 20:55)</a>:</h4>
<p>It's <em>almost</em> as big as <code>TyKind</code></p>



<a name="213978291"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978291" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978291">(Oct 20 2020 at 20:55)</a>:</h4>
<p>;)</p>



<a name="213978297"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978297" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978297">(Oct 20 2020 at 20:56)</a>:</h4>
<p>although I'm not 100% sure that <code>Error</code> belongs there</p>



<a name="213978361"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978361" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978361">(Oct 20 2020 at 20:56)</a>:</h4>
<p>yeah, I mean, that's why it's there, most types are "kind of the same"</p>



<a name="213978376"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978376" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978376">(Oct 20 2020 at 20:56)</a>:</h4>
<p>yeah, exactly</p>



<a name="213978399"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978399" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978399">(Oct 20 2020 at 20:56)</a>:</h4>
<p>The other point of discussion is that I'm pretty sure Chalk's version will have a higher perf overhead</p>



<a name="213978410"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978410" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978410">(Oct 20 2020 at 20:56)</a>:</h4>
<p>because of the subst interning</p>



<a name="213978438"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978438" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978438">(Oct 20 2020 at 20:57)</a>:</h4>
<p>yeah and this may be the decisive factor</p>



<a name="213978442"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978442" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978442">(Oct 20 2020 at 20:57)</a>:</h4>
<p>annoying but true :)</p>



<a name="213978472"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978472" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978472">(Oct 20 2020 at 20:57)</a>:</h4>
<p>I think in general, while I do <em>like</em> Chalk's generic over substitution, I think rustc's approach is more pragmatic</p>



<a name="213978481"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978481" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978481">(Oct 20 2020 at 20:57)</a>:</h4>
<p>also I guess the need to sometimes match and then match again</p>



<a name="213978574"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978574" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978574">(Oct 20 2020 at 20:58)</a>:</h4>
<p>I'm not sure who else that is Chalk-heavy is around</p>



<a name="213978584"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978584" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978584">(Oct 20 2020 at 20:58)</a>:</h4>
<p>well it's certainly easier to refactor chalk to match rustc than vice versa</p>



<a name="213978585"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978585" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978585">(Oct 20 2020 at 20:58)</a>:</h4>
<p>I'd like some more opinions here</p>



<a name="213978602"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978602" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978602">(Oct 20 2020 at 20:58)</a>:</h4>
<p>Well, if <code>Scalar</code> is an enum we can use <code>match ty.kind() { ty::Scalar(ty::Scalar::Uint(..)) =&gt; .. }</code></p>



<a name="213978623"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978623" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978623">(Oct 20 2020 at 20:58)</a>:</h4>
<p>yeah, <code>Scalar</code> is an enum</p>



<a name="213978655"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978655" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978655">(Oct 20 2020 at 20:59)</a>:</h4>
<p>yeah it's just that the generated code will have more branches</p>



<a name="213978683"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978683" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978683">(Oct 20 2020 at 20:59)</a>:</h4>
<p>this may or may not prove to be significant</p>



<a name="213978705"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978705" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978705">(Oct 20 2020 at 20:59)</a>:</h4>
<p>for scalars I expect it would be fine</p>



<a name="213978732"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978732" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978732">(Oct 20 2020 at 20:59)</a>:</h4>
<p>I mean, maybe? It might just be optimized out</p>



<a name="213978808"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978808" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978808">(Oct 20 2020 at 21:00)</a>:</h4>
<p>Okay, we're at the hour</p>



<a name="213978834"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978834" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978834">(Oct 20 2020 at 21:00)</a>:</h4>
<p>So, anybody want to add <code>Scalar</code> in rustc?</p>



<a name="213978841"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978841" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978841">(Oct 20 2020 at 21:00)</a>:</h4>
<p>Is this MCP territory?</p>



<a name="213978866"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978866" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978866">(Oct 20 2020 at 21:00)</a>:</h4>
<p>can't hurt, but I'd probably just second it right away</p>



<a name="213978883"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978883" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978883">(Oct 20 2020 at 21:01)</a>:</h4>
<p>I don't know that it really <em>needs</em> an MCP</p>



<a name="213978888"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978888" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978888">(Oct 20 2020 at 21:01)</a>:</h4>
<p>I feel like we should probably close <span class="user-mention" data-user-id="255061">@LeSeulArtichaut</span>'s PR on <code>TyKind</code> rename</p>



<a name="213978903"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978903" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978903">(Oct 20 2020 at 21:01)</a>:</h4>
<p>yeah, probably</p>



<a name="213978908"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978908" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Léo Lanteri Thauvin <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978908">(Oct 20 2020 at 21:01)</a>:</h4>
<p>It's not mine btw</p>



<a name="213978914"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978914" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978914">(Oct 20 2020 at 21:01)</a>:</h4>
<p>sorry <span class="user-mention" data-user-id="255061">@LeSeulArtichaut</span> :)</p>



<a name="213978917"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978917" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978917">(Oct 20 2020 at 21:01)</a>:</h4>
<p>oh</p>



<a name="213978955"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978955" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978955">(Oct 20 2020 at 21:01)</a>:</h4>
<p>a good next step would be introducing flags into chalk</p>



<a name="213978957"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978957" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978957">(Oct 20 2020 at 21:01)</a>:</h4>
<p><span class="user-mention" data-user-id="323979">@Bram van den Heuvel</span></p>



<a name="213978959"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978959" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Léo Lanteri Thauvin <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978959">(Oct 20 2020 at 21:01)</a>:</h4>
<p>No worries</p>



<a name="213978962"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978962" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978962">(Oct 20 2020 at 21:01)</a>:</h4>
<p>Sorry :(</p>



<a name="213978972"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213978972" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213978972">(Oct 20 2020 at 21:01)</a>:</h4>
<p>Yes, so next steps:</p>



<a name="213979017"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213979017" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213979017">(Oct 20 2020 at 21:02)</a>:</h4>
<p>Add <code>Scalar</code> in rustc</p>



<a name="213979033"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213979033" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213979033">(Oct 20 2020 at 21:02)</a>:</h4>
<p>Add <code>TyFlags</code> and <code>TyData</code> to Chalk</p>



<a name="213979074"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213979074" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213979074">(Oct 20 2020 at 21:02)</a>:</h4>
<p>And I'd like to see someone at least experiment with removing <code>TypeName</code> and merging into <code>TyKind</code>/<code>TyData</code></p>



<a name="213979075"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213979075" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213979075">(Oct 20 2020 at 21:02)</a>:</h4>
<p>I updated <a href="https://github.com/rust-lang/wg-traits/issues/16">https://github.com/rust-lang/wg-traits/issues/16</a> and filed <a href="https://github.com/rust-lang/chalk/issues/627">chalk#627</a></p>



<a name="213979121"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213979121" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213979121">(Oct 20 2020 at 21:03)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202020-10-20/near/213979074">said</a>:</p>
<blockquote>
<p>And I'd like to see someone at least experiment with removing <code>TypeName</code> and merging into <code>TyKind</code>/<code>TyData</code></p>
</blockquote>
<p>added that too</p>



<a name="213979125"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213979125" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213979125">(Oct 20 2020 at 21:03)</a>:</h4>
<p>Alright, anyways, changes all for coming :)</p>



<a name="213979133"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213979133" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213979133">(Oct 20 2020 at 21:03)</a>:</h4>
<p>yeah, I  think i'm convinced</p>



<a name="213979164"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213979164" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213979164">(Oct 20 2020 at 21:03)</a>:</h4>
<p>If anyone reads this and has opinions of <code>TypeName</code> removal, please share &lt;3</p>



<a name="213979168"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213979168" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213979168">(Oct 20 2020 at 21:04)</a>:</h4>
<p>also I feel like I'd like to push the chalk-rustc-type library integration over the finish line and, in part, mimicking rustc does feel like the path of least resistance :)</p>



<a name="213979252"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213979252" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213979252">(Oct 20 2020 at 21:04)</a>:</h4>
<p>I think we can also start moving some of rustc's types into it's own crate there</p>



<a name="213979276"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213979276" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213979276">(Oct 20 2020 at 21:04)</a>:</h4>
<p>even if it's not in 100% congruence with Chalk</p>



<a name="213979305"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213979305" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213979305">(Oct 20 2020 at 21:05)</a>:</h4>
<p>Just moving things that will eventually be shared</p>



<a name="213979307"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213979307" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213979307">(Oct 20 2020 at 21:05)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202020-10-20/near/213979164">said</a>:</p>
<blockquote>
<p>If anyone reads this and has opinions of <code>TypeName</code> removal, please share <span aria-label="heart" class="emoji emoji-2764" role="img" title="heart">:heart:</span></p>
</blockquote>
<p>Removing it sounds like a good idea to me</p>



<a name="213979323"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213979323" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213979323">(Oct 20 2020 at 21:05)</a>:</h4>
<p>Just getting it <em>out</em> of <code>rustc_middle</code></p>



<a name="213979432"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213979432" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213979432">(Oct 20 2020 at 21:06)</a>:</h4>
<p>my internet just died :/</p>
<p>how does scalar deal with inference vars</p>



<a name="213979470"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213979470" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213979470">(Oct 20 2020 at 21:06)</a>:</h4>
<p><span class="user-mention silent" data-user-id="216206">lcnr</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202020-10-20/near/213979432">said</a>:</p>
<blockquote>
<p>my internet just died :/</p>
<p>how does scalar deal with inference vars</p>
</blockquote>
<p>what do you mean</p>



<a name="213979548"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213979548" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213979548">(Oct 20 2020 at 21:07)</a>:</h4>
<p>see <a href="http://rust-lang.github.io/chalk/chalk_ir/enum.TypeName.html">http://rust-lang.github.io/chalk/chalk_ir/enum.TypeName.html</a></p>



<a name="213979551"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213979551" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213979551">(Oct 20 2020 at 21:07)</a>:</h4>
<p>nothing, I was confused for a second. It's <code>ty::Infer(IntVar(...))</code> not <code>ty::Int(InferVar(..))</code></p>



<a name="213979568"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213979568" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213979568">(Oct 20 2020 at 21:07)</a>:</h4>
<p>and <a href="http://rust-lang.github.io/chalk/chalk_ir/enum.Scalar.html">http://rust-lang.github.io/chalk/chalk_ir/enum.Scalar.html</a></p>



<a name="213979575"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213979575" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213979575">(Oct 20 2020 at 21:07)</a>:</h4>
<p>oh, yes</p>



<a name="213984597"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-10-20/near/213984597" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nathan Whitaker <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-10-20.html#213984597">(Oct 20 2020 at 21:57)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202020-10-20/near/213979164">said</a>:</p>
<blockquote>
<p>If anyone reads this and has opinions of <code>TypeName</code> removal, please share &lt;3</p>
</blockquote>
<p>I'm on board with removing it too – it's easier to change chalk than rustc, plus it can be a bit cumbersome to get what you want from the nested structure</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>